#pragma once
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
//Floor Types
#include "Floor.h"
#include "IceFloor.h"
#include "FireFloor.h"
#include "WaterFloor.h"
#include "EmptyFloor.h"
#include "Stairs.h"
#include "GravelFloor.h"
#include "ForcePadFloor.h"
#include "WallFloor.h"
#include "BlockSwitch.h"
//Object Types
#include "Object.h"
#include "Tait.h"
#include "Block.h"
#include "Exit.h"
#include "PickUp.h"
#include "ImoBlock.h"
#include "Bomb.h"
#include "DissolveBlock.h"
#include "Key.h"
#include "Gate.h"
#include "FrogMonster.h"
#include "AntMonster.h"

using namespace std;

class StageParam
{
private:
	//
	//Private variables to the class
	//
	string stage;
	int countdown;
	int potatoCount;
	int x, y, z;
	vector<vector<vector<Floor*>>> map;
	vector<Object*> objects;
	Object *tait;
public:
	//
	//Constructors
	//
	StageParam();
	StageParam(char * filename);
	StageParam(int countdown, int potatoCount);
	~StageParam(void);
	//
	//Getters
	//
	string getStage();
	int getCountdown();
	int getPotatoCount();
	int getX();
	int getY();
	int getZ();
	Object * getTait();
	vector<vector<vector<Floor*>>> getMap();
	vector<Object*> getObjects();
	
};
